package com.itlong.cloud.enumerate;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *<desc>
 *     云电梯iot控制指令枚举类
 *</desc>
 *
 * @createDate 2018/03/17
 */
public enum IotCloudCtrlInstructEnum {

    DEVICEREPORTCTRL("设备状态上报控制指令","/deviceReportCtrl"),          //设备状态上报控制指令
    DEVICECTRL("呼梯控制指令","/deviceCtrl"),          //呼梯控制指令
    DEVICECMD("通用呼梯指令","/cmd"),                //通用呼梯指令
    COMMAND("指令下发","/command")                  //指令下发
    ;

    private String description;
    private String url;


    IotCloudCtrlInstructEnum(String value, String url) {
        this.url = url;
        this.description = value;
    }

    /**
     * {@link #description}的getter。
     */
    public String getDescription() {
        return description;
    }

    /**
     * {@link #url}的getter。
     */
    public String getUrl() {
        return url;
    }



    /**
     * <p>
     *     获取枚举的描述。
     * <p/>
     *
     * @param type  类型值。
     * @return {@link String}。
     */
    public static String getDescription(String type){
        IotCloudCtrlInstructEnum[] types = IotCloudCtrlInstructEnum.values();
        for(IotCloudCtrlInstructEnum limitCategory : types ){
            if(limitCategory.getUrl().equals(type)){
                return limitCategory.getDescription();
            }
        }
        return null;
    }


    /**
     * <p>
     *     获取枚举的类型。
     * <p/>
     *
     * @param type  类型值。
     * @return {@link int}。
     */
    public static String getType(String type) {
        IotCloudCtrlInstructEnum[] types = IotCloudCtrlInstructEnum.values();
        for(IotCloudCtrlInstructEnum limitCategory : types ){
            if(limitCategory.getUrl().equals(type)){
                return limitCategory.getUrl();
            }
        }
        return "" ;
    }



    /**
     * <p>
     *     获取枚举的list。
     * <p/>
     *
     * @return {@link java.util.List}。
     */
    public static List<Map> toList() {
        List<Map> mapList = new ArrayList<Map>();
        IotCloudCtrlInstructEnum[] ds = IotCloudCtrlInstructEnum.values();
        for (IotCloudCtrlInstructEnum one : ds) {
            Map<String,Object> term= new HashMap<String,Object>();
            term.put("type",one.getUrl());
            term.put("description",one.getDescription());
            mapList.add(term);
        }
        return mapList;
    }
}
